import axios from '@/utils/request.js'
import store from '@/store'

// 获取用户的频道
export async function userChannels () {
  // 如果用户未登录
  if (!store.state.user.token) {
    // 获取本地数据
    const _local = JSON.parse(localStorage.getItem('userChannels')) || []
    // 如果本地没数据
    if (_local.length === 0) {
      // 调用接口获取数据
      const res = await axios({
        url: '/v1_0/user/channels'
      })
      // 将数据保存到本地
      localStorage.setItem('userChannels', JSON.stringify(res.data.channels))
      // 返回数据
      return res.data.channels
    } else {
      // 如果本地有数据,直接返回本地数据
      return JSON.parse(localStorage.getItem('userChannels'))
    }
  } else {
    // 如果用户已登录，直接调用接口获取数据并返回
    const res = await axios({
      url: '/v1_0/user/channels'
    })
    return res.data.channels
  }
}

// 获取文章新闻推荐
export function articles (params) {
  return axios({
    url: '/v1_0/articles',
    params
  })
}

// 获取所有频道列表
export function channels () {
  return axios({
    url: '/v1_0/channels'
  })
}

// 设置用户的频道（重置式）
export function userChannelsPut (channels) {
  // 如果用户未登录
  if (!store.state.user.token) {
    // 添加后将最新数据保存到本地
    localStorage.setItem('userChannels', JSON.stringify(channels))
  } else {
    // 如果用户已登录，调用接口
    return axios({
      method: 'put',
      url: '/v1_0/user/channels',
      data: {
        channels
      }
    })
  }
}
